package com.vimi8.ebb.auth.model;

import java.util.Objects;

import io.swagger.annotations.ApiModelProperty;

import java.util.ArrayList;
import java.util.List;




/**
 * RegUser
 */
@javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringCodegen", date = "2016-10-11T06:39:24.128Z")

public class RegUser extends AuthUser  {
  private String password = null;

  private String verifyCode = null;

  private List<String> applyClientId = new ArrayList<String>();

  private List<String> applyResources = new ArrayList<String>();

  private List<String> applyScopes = new ArrayList<String>();

  private String applyOpenid = null;

  private String applyDeptId = null;

  private String clientOrgClass = null;
 private String clientName=null;
  public String getClientOrgClass() {
    return clientOrgClass;
  }

  public void setClientOrgClass(String clientOrgClass) {
    this.clientOrgClass = clientOrgClass;
  }

  public RegUser password(String password) {
    this.password = password;
    return this;
  }
  /**
   * 客服端名称（组织名称）.
   * @return password
   **/
  @ApiModelProperty(value = "客服端名称（组织名称）.")
  public String getClientName() {
    return clientName;
  }

  public void setClientName(String clientName) {
    this.clientName = clientName;
  }

  /**
   * 密码.
   * @return password
  **/
  @ApiModelProperty(value = "密码.")
  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public RegUser verifyCode(String verifyCode) {
    this.verifyCode = verifyCode;
    return this;
  }

   /**
   * 手机验证码.
   * @return verifyCode
  **/
  @ApiModelProperty(value = "手机验证码.")
  public String getVerifyCode() {
    return verifyCode;
  }

  public void setVerifyCode(String verifyCode) {
    this.verifyCode = verifyCode;
  }

  public RegUser applyClientId(List<String> applyClientId) {
    this.applyClientId = applyClientId;
    return this;
  }

  public RegUser addApplyClientIdItem(String applyClientIdItem) {
    this.applyClientId.add(applyClientIdItem);
    return this;
  }

   /**
   * 申请加入客户域(组织)的标识-可能需审核.
   * @return applyClientId
  **/
  @ApiModelProperty(value = "(必填)申请加入客户域(组织)的标识-可能需审核.")
  public List<String> getApplyClientId() {
    return applyClientId;
  }

  public void setApplyClientId(List<String> applyClientId) {
    this.applyClientId = applyClientId;
  }

  public RegUser applyResources(List<String> applyResources) {
    this.applyResources = applyResources;
    return this;
  }

  public RegUser addApplyResourcesItem(String applyResourcesItem) {
    this.applyResources.add(applyResourcesItem);
    return this;
  }

   /**
   * 申请加入资源列表-可能需审核.
   * @return applyResources
  **/
  @ApiModelProperty(value = "(可选)申请加入资源列表-可能需审核且必须是clientId已存在的.")
  public List<String> getApplyResources() {
    return applyResources;
  }

  public void setApplyResources(List<String> applyResources) {
    this.applyResources = applyResources;
  }

  public RegUser applyScopes(List<String> applyScopes) {
    this.applyScopes = applyScopes;
    return this;
  }

  public RegUser addApplyScopesItem(String applyScopesItem) {
    this.applyScopes.add(applyScopesItem);
    return this;
  }

   /**
   * 申请加入权限范围列表-可能需审核.
   * @return applyScopes
  **/
  @ApiModelProperty(value = "(可选)申请加入权限范围列表-可能需审核且必须是clientId已存在的.")
  public List<String> getApplyScopes() {
    return applyScopes;
  }

  public void setApplyScopes(List<String> applyScopes) {
    this.applyScopes = applyScopes;
  }

  public RegUser applyOpenid(String applyOpenid) {
    this.applyOpenid = applyOpenid;
    return this;
  }

   /**
   * 申请开放的用户标识-不冲突时,可采纳 .
   * @return applyOpenid
  **/
  @ApiModelProperty(value = "(可选)申请开放的用户标识-不冲突时,可采纳.")
  public String getApplyOpenid() {
    return applyOpenid;
  }

  public void setApplyOpenid(String applyOpenid) {
    this.applyOpenid = applyOpenid;
  }


  public RegUser applyDeptId(String applyDeptId) {
    this.applyDeptId = applyDeptId;
    return this;
  }

  /**
   * 申请开放的用户标识-不冲突时,可采纳 .
   * @return applyOpenid
   **/
  @ApiModelProperty(value = "(可选)申请加入的部门-未填时,加入默认部门.")
  public String getApplyDeptId() {
    return applyDeptId;
  }

  public void setApplyDeptId(String applyOpenid) {
    this.applyDeptId = applyDeptId;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    RegUser regUser = (RegUser) o;
    return Objects.equals(this.password, regUser.password) &&
        Objects.equals(this.verifyCode, regUser.verifyCode) &&
        Objects.equals(this.applyClientId, regUser.applyClientId) &&
        Objects.equals(this.applyResources, regUser.applyResources) &&
        Objects.equals(this.applyScopes, regUser.applyScopes) &&
        Objects.equals(this.applyOpenid, regUser.applyOpenid) &&
        super.equals(o);
  }

  @Override
  public int hashCode() {
    return Objects.hash(password, verifyCode, applyClientId, applyResources, applyScopes, applyOpenid, super.hashCode());
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class RegUser {\n");
    sb.append("    ").append(toIndentedString(super.toString())).append("\n");
    sb.append("    password: ").append(toIndentedString(password)).append("\n");
    sb.append("    verifyCode: ").append(toIndentedString(verifyCode)).append("\n");
    sb.append("    applyClientId: ").append(toIndentedString(applyClientId)).append("\n");
    sb.append("    applyResources: ").append(toIndentedString(applyResources)).append("\n");
    sb.append("    applyScopes: ").append(toIndentedString(applyScopes)).append("\n");
    sb.append("    applyOpenid: ").append(toIndentedString(applyOpenid)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

